<?php
/**
 * 公共方法--输入校验
 *
 * @author Yuwei(yuwei1122@gmail.com)
 *
 * 包含方法列表：
 * (1)is_email email
 * (2)is_url 网址
 * (3)is_qq qq
 * (4)is_zip 邮编
 * (5)is_idcard 身份证
 * (6)is_chinese 中文
 * (7)is_english 英文
 * (8)is_mobile 手机
 * (9)is_phone 电话
 * (10)is_username 用户名
 * (11)is_safe 安全性
 */
final class BluePhp_Library_Common_InputCheck
{
	/**
	 * email 
	 * @param unknown_type $str
	 */
    public static function is_email($str)
    {
		return preg_match("/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/", $str); 
	}
	
	/**
	 * 网址 
	 * @param unknown_type $str
	 */
	public static function is_url($str)
	{
		return preg_match("/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"])*$/", $str); 
	} 
	
	/**
	 * qq 
	 * @param unknown_type $str
	 */
	public static function is_qq($str)
	{
		return preg_match("/^[1-9]\d{4,8}$/", $str); 
	}
	
	/**
	 * 邮编 
	 * @param unknown_type $str
	 */
	public static function is_zip($str)
	{
		return preg_match("/^[1-9]\d{5}$/", $str); 
	}
	
	/**
	 * 身份证
	 * @param unknown_type $str
	 */
	public static function is_idcard($str)
	{
		return preg_match("/^\d{15}(\d{2}[A-Za-z0-9])?$/", $str); 
	}
	
	/**
	 * 中文 
	 * @param unknown_type $str
	 */
	public static function is_chinese($str)
	{
		return ereg("^[".chr(0xa1)."-".chr(0xff)."]+$",$str); 
	}
	
	/**
	 * 英文 
	 * @param unknown_type $str
	 */
	public static function is_english($str)
	{
		return preg_match("/^[A-Za-z]+$/", $str); 
	}
	
	/**
	 * 手机 
	 * @param unknown_type $str
	 */
	public static function is_mobile($str)
	{
		return preg_match("/^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/", $str); 
	}
	
	/**
	 * 电话 
	 * @param unknown_type $str
	 */
	public static function is_phone($str)
	{
		return preg_match("/^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/",$str); 
	}
	
	/**
	 * 用户名
	 * @param unknown_type $str
	 * @param unknown_type $min
	 * @param unknown_type $max
	 */
	public static function is_username($str,$min = 5,$max = 20)
	{
		return preg_match('/^[a-z\d_]{'.$min.','.$max.'}$/i', $str);
	}
	
	/**
	 * 安全性
	 * @param unknown_type $str
	 */
	public static function is_safe($str)
	{ 
		return (preg_match("/^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/", $str) != 0); 
	}
}
?>